Skip to content

feat: publish ARD ai-catalog.json for skill discovery#220

Merged
dawright22 merged 6 commits into
mainfrom
feat/ard-catalog
Jul 1, 2026
Merged

feat: publish ARD ai-catalog.json for skill discovery#220
dawright22 merged 6 commits into
mainfrom
feat/ard-catalog

Conversation

@dawright22

@dawright22 dawright22 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

Publishes an Agentic Resource Discovery (ARD) catalog so AI agents can automatically discover and invoke Git-Ape skills.

Changes

File Purpose
website/static/.well-known/ai-catalog.json ARD machine-readable catalog (served at /git-ape/.well-known/ai-catalog.json)
website/docs/reference/ard.md Human-readable ARD reference doc (rendered in Docusaurus)
website/sidebars.ts Adds ARD page to the Reference section sidebar

What the catalog contains

  • 15 Git-Ape skills — all skills from .github/skills/, with descriptions derived from each skill's SKILL.md frontmatter (condensed for length).
  • No federated collections — the catalog ships with "collections": []. The collections[] array is reserved for future ARD federation; it links sub-catalogs by URL so a crawler can resolve them without inlining their entries.

Serving location

The catalog lives in website/static/.well-known/ so that the Docusaurus/GitHub Pages build actually publishes it. GitHub Pages is a project site, so the served URL carries the /git-ape/ path prefix:

https://azure.github.io/git-ape/.well-known/ai-catalog.json

Acceptance criteria

  • https://azure.github.io/git-ape/.well-known/ai-catalog.json returns HTTP 200 with valid JSON after merge (verified locally: a production npm run build emits build/.well-known/ai-catalog.json as valid JSON)
  • ARD reference page appears in the Docusaurus docs under Reference (verified locally: build/docs/reference/ard.html renders)

Closes #223

@arnaudlh arnaudlh self-requested a review June 30, 2026 09:49

@dawright22 dawright22 left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@arnaudlh arnaudlh added this to the v0.4.0 milestone Jul 1, 2026
@arnaudlh

arnaudlh commented Jul 1, 2026

Copy link
Copy Markdown
Member

Review — ARD ai-catalog.json publication

Tracking: #223 · Milestone: v0.4.0

Thanks for this — the concept is solid and the JSON is valid + ARD-spec-conformant. CI is green (Markdown Lint, Structural Validation, Analyze), but none of those checks verify the catalog is actually served, and as placed it won't be. One blocking issue plus some doc/catalog drift.

🔴 Blocking — catalog won't be served at the advertised URL

The file is committed to repo-root docs/.well-known/ai-catalog.json, but nothing publishes that path:

  • git-ape-docs.yml builds only website/ and uploads website/build.
  • Docusaurus serves static assets from website/static/ — there's no staticDirs override in docusaurus.config.ts, and scripts/generate-docs.js only writes into website/docs/; it never touches docs/.well-known/.
  • So repo-root docs/** is inert and the file never lands in website/build.

Acceptance criterion #1 ("returns HTTP 200 … after merge") will fail as-is. With baseUrl: '/git-ape/', moving the file to website/static/.well-known/ai-catalog.json serves it at https://azure.github.io/git-ape/.well-known/ai-catalog.json.

🟠 Should fix — ard.md + PR description describe a catalog that no longer exists

The last commit (98c20b6, "remove ARD collections") emptied collections to [], but website/docs/reference/ard.md still:

  • has the "federates two additional skill catalogs via collections" paragraph,
  • shows the 2-row Collections table (SaaS / AWS),
  • shows collections[] with 2 URLs in the JSON sample,
  • claims agents "discover all 48 skills (15 + 12 + 21)".

All false against the shipped catalog (15 skills, no collections). The PR description carries the same stale claims. Please either re-add the collections or scrub these so the doc matches what ships.

🟡 Nits

  • host.identifier: "azure.github.io" implies the ARD well-known URL https://azure.github.io/.well-known/ai-catalog.json (domain root). A GitHub Pages project site can only serve /git-ape/…, not the domain root, so the catalog is registrable manually but not auto-discoverable at the azure.github.io root. Worth a note in the doc.
  • "descriptions sourced directly from SKILL.md frontmatter" isn't quite accurate — they're editorially cleaned/truncated (e.g. prereq-check is fully rewritten; azure-drift-detector / azure-cost-estimator drop trailing "Use…" sentences). The cleanup is an improvement; just the claim is misleading.
  • type: "application/ai-skill" — the ARD example uses application/mcp-server+json. The spec lists "Skill" as a resource kind but doesn't pin a media type; worth confirming application/ai-skill is the token crawlers expect.
  • ard.md has no trailing newline (diff shows "No newline at end of file").

✅ Good

JSON is valid, envelope conforms to ARD v1.0 (specVersion / host / entries / collections), and all 15 entries correctly match the 15 dirs in .github/skills/.

Move ai-catalog.json from repo-root docs/.well-known/ (which the GitHub Pages
build never publishes) to website/static/.well-known/ so Docusaurus serves it at
https://azure.github.io/git-ape/.well-known/ai-catalog.json.

Reconcile website/docs/reference/ard.md with the shipped catalog, which no
longer federates collections (collections: []): drop the SaaS/AWS collections
table, the "48 skills" total, and the federation prose; note the GitHub Pages
project-site path prefix; soften the "sourced directly from frontmatter"
wording; add a trailing newline.

Verified with a production Docusaurus build: build/.well-known/ai-catalog.json
is present and valid JSON, and build/docs/reference/ard.html renders with no
stale collections references.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@arnaudlh

arnaudlh commented Jul 1, 2026

Copy link
Copy Markdown
Member

Pushed fixes (commit 317c3bb)

Addressed the review items from above directly on feat/ard-catalog:

🔴 Blocking — now resolved

  • Moved the catalog from repo-root docs/.well-known/ai-catalog.json (never published by the Pages build) to website/static/.well-known/ai-catalog.json (100% pure rename, JSON unchanged), and removed the now-empty repo-root docs/.
  • Verified with a real production build (npm cinode scripts/generate-docs.jsnpm run build): build/.well-known/ai-catalog.json is emitted and valid JSON, so https://azure.github.io/git-ape/.well-known/ai-catalog.json will return 200 after merge.

🟠 Doc drift — now resolved

  • Reconciled website/docs/reference/ard.md with the shipped catalog (collections: []): removed the SaaS/AWS collections table, the collections[] URLs in the JSON sample, the federation prose, and the "48 skills" total (→ 15 Git-Ape skills).
  • Added a note that the docs are a Pages project site (served under /git-ape/, not the azure.github.io root).
  • Softened "sourced directly from SKILL.md frontmatter" → "derived … (condensed for length)".
  • Added the missing trailing newline.
  • build/docs/reference/ard.html renders clean — no stale 48/SaaS/AWS references.

Also updated the PR description to match (no collections, correct file path, corrected acceptance criteria).

Not changed: type: "application/ai-skill" — left as-is. The ARD spec lists "Skill" as a resource kind but doesn't pin a media type, and application/mcp-server+json (the spec's example) would be wrong for a skill. Flag if you'd prefer a different token.

@dawright22 dawright22 merged commit 0622964 into main Jul 1, 2026
4 checks passed
@dawright22 dawright22 deleted the feat/ard-catalog branch July 1, 2026 01:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Publish ARD ai-catalog.json for agentic skill discovery

2 participants